1. Field of Art
The disclosure generally relates to digital video processing, more particularly, to the transcoding of a tile based video sequence into a non-tile based video sequence by efficient tile decoding.
2. Description of the Related Art
New challenges to video representation and transmission systems have been posed by increasingly diverse digital video applications, e.g., video conferencing, telepresence systems, and high definition TV (HDTV), with various formats transmitted through heterogeneous wired and wireless networks to various receiving devices. Video transcoding is one of the promising technologies to meet such challenges by providing conversion of a video sequence in one format to another. A format of a video sequence is generally defined by one or more characteristics of the video sequence, e.g., bit-rates, spatial resolutions and video coding standards such as H.264/Advanced Video Coding (AVC), Moving Picture Experts Group (MPEG)-2 and most recent High Efficiency Video Coding (HEVC) standard.
FIG. 2 illustrates a generic system architecture of a video transcoder for video transcoding. An input video sequence 201 is received by a video encoder, Encoder-1 202, which compresses video frames of the input video sequence 201 into a video stream 203 in a first video format supported by the encoder 202. A video transcoder 210 receives the compressed video sequence 203 for transcoding. The video transcoder 210 comprises a video decoder, Decoder-1 204, and a video encoder, Encoder-2 206. The decoder 204 decodes the compressed video sequence 203 into an uncompressed video sequence 205. Generally, the decoder 204 corresponds to the encoder 202 and is configured to support the first video format used by the encoder 202. The uncompressed video sequence 205 is re-encoded by a second encoder, Encoder-2 206, into a compressed video stream 207 according to a second video format. The first video format and second video format can be different in terms of bit-rates, spatial resolutions and video coding standards. The re-encoded video sequence 207 is decoded by a second decoder, Decoder-2 208, which corresponds to the second encoder 206. The decoder 208 generates an output video sequence 209 in the second video format for further processing such as displaying on a client device.
To transcode an HEVC video (e.g., input video sequence 201) into an AVC video (e.g., output video sequence 209) using the exemplary system architecture illustrated in FIG. 2, Encoder-1 202 is configured to compress the input video sequence 201 into an HEVC-compatible video sequence in an HEVC format. The Encoder-1 202 may partition the input video sequence 201 into tiles and encode the tiles according to the HEVC video coding standard. The video transcoder 210 receives the encoded video sequence in the HEVC video format and decodes the video sequence into an uncompressed video sequence. The video transcoder 210 re-encodes the uncompressed video sequence into a video sequence in a non-tile based AVC video format. The re-encoded video sequence is decoded by the Decoder-2 208, which generates an output video sequence 209 in the AVC video format.
The HEVC standard is designed to support existing applications of H.264/AVC and to facilitate parallel processing architectures. The video coding layer of the HEVC standard is based on the same block-based hybrid coding architecture as previous coding standards. However, comparing with core coding block, e.g., macroblock containing a 16×16 block of luma samples, in previous coding standards, the HEVC standard employs a flexible quad-tree coding block partitioning, which allows a video frame/picture to be partitioned into tiles, slices and coding tree units. Tile coding provided by the HEVC standard poses challenges to video transcoding that converts a tile based HEVC video into a non-tile based video, such as AVC or MPEG-2 video, due to different processing orders and context models required for entropy coding of the coding blocks. Using the example illustrated in FIG. 2, the video transcoder 210 configured for HEVC-to-AVC transcoding needs a solution to efficiently transcode an input video sequence partitioned into tiles by an HEVC encoder into an output video sequence that is not tile based for backward compatibility such as AVC and/or MPEG-2 videos.